package com.deyuanyun.pic.pipe.util;

import com.deyuanyun.pic.common.spring.SpringAppliction;
import com.deyuanyun.pic.pipe.domain.Gww;
import com.deyuanyun.pic.pipe.domain.Identification;
import com.deyuanyun.pic.pipe.service.PipeGeneralService;

import java.math.BigDecimal;

/**
 * “管道基础数据 通用方法” 工具类
 *
 * @author huanglw
 * @date  2016-11-17
 *
 * History: [修改人][时间][修改描述]
 */
public class PipeGeneralUtil {

    /**
     * 查询 任意绝对距离 的最近参考点
     *
     * @param pipeLineId 管道id
     * @param mileage 绝对距离
     * @return 如果 pipeLineId 或者 mileage 为空，那么返回null
     */
    public static Identification findLatelyIdentification(String pipeLineId, BigDecimal mileage){
        PipeGeneralService pipeGeneralService = SpringAppliction.getBean(PipeGeneralService.class);
        return pipeGeneralService.findLatelyIdentification(pipeLineId, mileage);
    }

    /**
     * 查询 任意绝对距离 的上游环焊缝
     *
     * @param pipeLineId 管道id
     * @param mileage 绝对距离
     * @return 如果 pipeLineId 或者 mileage 为空，那么返回null
     */
    public static Gww findUGWW(String pipeLineId, BigDecimal mileage){
        PipeGeneralService pipeGeneralService = SpringAppliction.getBean(PipeGeneralService.class);
        return pipeGeneralService.findUGWW(pipeLineId, mileage);
    }

    /**
     * 查询 任意绝对距离 的上游环焊缝
     *
     * @param mileage 绝对距离
     * @param referenceMileage 参考点绝对距离
     * @return 如果 referenceMileage 或者 mileage 为空，那么返回null
     */
    public static BigDecimal calculation(BigDecimal mileage, BigDecimal referenceMileage){
        if (mileage == null || referenceMileage == null){
            return null;
        }
        return mileage.subtract(referenceMileage).abs();
    }


}
